<template>
	<section>
		<!--start  面包屑-->
		<div class="location">
			<el-breadcrumb separator="/">
				<el-breadcrumb-item :to="{path:'/index'}">首页</el-breadcrumb-item>
				<el-breadcrumb-item>营销</el-breadcrumb-item>
				<el-breadcrumb-item>商品促销</el-breadcrumb-item>
			</el-breadcrumb>
			<!--start 右侧帮助组件    可选！！-->
			<help-components>
				<span slot="headText">商品促销列表</span>
				<p slot="headDescText">商品促销列表</p>
				<div slot="helpContentWrap">
					<div>
						<h3>???</h3>
						<p>!!</p>
					</div>
				</div>
			</help-components>
			<!--end 右侧帮助组件-->
		</div>
		<!--end  面包屑-->
		<!--start content-->
		<div class="content" ref="content">
			
			
			
			
			<!-- start 高级搜索 -->
			<div>
				<transition name="fade">
					<div class="modal_backdrop" v-show="vue_advSearch_enable"></div>
				</transition>
				<transition name="fade">
					<div class="specific_search" v-show="vue_advSearch_enable">
						<div class="search_title">
							<p>高级搜索</p>
						</div>
						<!--start 高级搜索的具体项目   可选！！-->
						<div class="form">
							<ul>
								<li>
									<span style="margin-right: 2px;">商品</span>
									<div style="width: 356px;"><input type="" v-model="saleGoodsPruleQb.fullTextFilterStr" placeholder="请输入商品名称和编码" /></div>
								</li>
								<li>
									<span style="margin-right: 2px;">促销时间</span>
									<el-date-picker v-model="vue_dateStr" type="daterange" placeholder="选择日期范围"></el-date-picker>
								</li>
								<li>
									<span style="margin-right: 2px;">促销状态</span>
									<el-radio-group v-model="saleGoodsPruleQb.dataBillstate" class="kael">
									    <el-radio :label="''">全部</el-radio>
									    <el-radio v-for="(item,index) in vue_dataBillstate_dataList" :label="item.ddlistRemark">{{item.ddlistName}}</el-radio>
									</el-radio-group>
								</li>
								<!--<li>添加更多高级搜索条件<li>-->
							</ul>
						</div>
						<!--end 高级搜索的具体项目 -->
						<div class="search_btn">
							<el-button @click="advSearch_ok" type="primary">确定</el-button>
							<el-button @click="advSearch_cancel">取消</el-button>
							<el-button @click="advSearch_clear" type="text">清空</el-button>
						</div>
					</div>
				</transition>
			</div>
			<div class="search_handle " v-if="vue_advSearch_showDialog">
				搜索结果
				<em style="font-style: normal;margin: 0px 20px;">|</em>
				<a @click="advSearch_disable"><em class="iconfont">&#xe66b;</em>清除搜索</a>
				<a @click="advSearch_enable"><em class="iconfont">&#xe62d;</em>继续搜索</a>
			</div>
			<!-- end 高级搜索  -->
			
			
			
			
			<!-- start 批量操作 --> 
			<div class="batch_handle" v-if="vue_row_selectCount>0 && vue_advSearch_showDialog==false" >
				<em class="iconfont" @click="row_unselectAll" style="margin: 2px 20px;position: relative;top: 2px;cursor: pointer;">&#xe630;</em>
				已选<span>{{vue_row_selectCount}}</span>项<em style="font-style: normal;margin: 0px 20px;">|</em>
				<a @click="batchDelete"><em class="iconfont">&#xe644;</em>&nbsp;作废</a>
			</div>
			<!--end 批量操作-->
			
			
			
			
			<!--start 普通搜索-->
			<div class="public_th clearfix" v-if="vue_row_selectCount==0">
				<div class="slideBtn fl textR">
					<el-select v-model="saleGoodsPruleQb.dataBillstate" @change="ddlist_generalSearch_ok">
						<el-option label="全部状态" value=""></el-option>
						<el-option v-for="item in vue_dataBillstate_dataList" 
							:label="item.ddlistName" 
							:value="item.ddlistRemark">
						</el-option>
					</el-select>
				</div>
				<div class="public_th_left fl">
					<div class="fl">
						<div class="search_input">
							<input @keydown.enter="generalSearch_ok" type="text" v-model="saleGoodsPruleQb.fullTextFilterStr" placeholder="请输入业务代码" /><i @click="generalSearch_ok"></i>
						</div>
					</div>
					<span class="fl search_openBtn" @click="advSearch_showDialog">高级搜索</span>
				</div>
				<div class="public_th_right fr">
					<!--<a>导入</a>
					<a>导出</a>-->
					<router-link to="/marketing/goodsPromotionalNew" style="background: #13c19f;color: #fff;border: 0;">新增</router-link>
				</div>
			</div>
			<!--end 普通搜索-->
			
			
			<!--start 表格-->
			<div class="table contentBodyCon content_table_list" :class="{beforeNone:saleGoodsPruleSet.list.length!='0'}">
				<el-table  
					ref="saleGoodsPruleRows" 
					:data="saleGoodsPruleSet.list" 
					style="width: 100%;  z-index: 10;"  
					:max-height="vue_tableHeight"
					@sort-change="vFun_sort"
					@selection-change="row_select">
					<el-table-column type="selection" width="60"></el-table-column>
					<!--<el-table-column prop="goodsPruleCode" label="业务代码" sortable>-->
						<!--start 可点击的项  可选！！-->
						<!--<template scope="scope">
							<span class="canClickText" @click="row_goDetail(scope.row)" v-html="scope.row.goodsPruleCode"></span>
						</template>-->
						<!--end 可点击的项-->
					<!--</el-table-column>-->
					<el-table-column prop="goodsName" show-overflow-tooltip label="促销商品">
						<template scope="scope">
							<span class="canClickText" @click="row_goDetail(scope.row)" v-html="scope.row.goodsName"></span>
						</template>
					</el-table-column>
					<el-table-column prop="goodsSkuValue" label="规格"></el-table-column>
					<el-table-column sortable="custom" prop="goodsPruleTypeStr" label="促销类型"></el-table-column>
					<el-table-column sortable="custom" prop="dataBillstateStr" label="状态"></el-table-column>
					<!--<el-table-column prop="gradeCodeStr" label="促销对象"></el-table-column>-->
					<el-table-column sortable="custom" prop="goodsPruleSdateStr" label="促销开始时间"></el-table-column>
					<el-table-column sortable="custom" prop="goodsPruleEdateStr" label="促销结束时间"></el-table-column>
					<!-- add more column header -->
					
					<!--<el-table-column prop="" label="" fixed="right" width="60" >
						<template scope="scope">
							<el-popover trigger="hover" placement="bottom">
								<p class="popover_p" style="cursor: pointer;" @click="row_goUpdate(scope.row)">
									<em class="iconfont">&#xe617;</em>修改
								</p>
								<div slot="reference" style="text-align: center;">
									<em class="iconfont tab_hover">&#xe607;</em>
								</div>
							</el-popover>
						</template>
					</el-table-column>-->
				</el-table>
			</div>
			<!--end 表格-->
			<div class="block fr">
				<el-pagination 
					@size-change="page_onPageSizeChange" 
					@current-change="page_onCurPageChange" 
					:current-page="parseInt(saleGoodsPruleSet.pageTools.pageNo)" 
					:page-sizes="saleGoodsPruleSet.pageTools.pageSizeOptions" 
					:page-size="parseInt(saleGoodsPruleSet.pageTools.pageSize)" 
					:total="parseInt(saleGoodsPruleSet.pageTools.recordCount)" 
					layout="total, prev, pager, next, sizes,jumper">
				</el-pagination>
			</div>
		</div>
		<!--end content-->
	</section>
</template>

<script>
	/*
	 1.引入的组件、文件等，优先写在顶部。
	 2.组件的选项编写顺序按照先string再obj再function，详细如下：
	 	1):el=>name=>template
	 	2):components=>watch=>filters=>computed=>props=>directives=>propsData=>parent=>mixins=>delimiters=>functional=>methods
	 	3):render=>data=>extends=>生命周期钩子
	 * */
	import helpComponents from '../../../components/help/help'    //引入右侧帮助组件 可选！！
	export default {
		components:{helpComponents},
		data() {
			return {
				vue_dateStr:'',  //促销时间
				vue_dataBillstate_dataList:[],  //促销状态list
					/*--查询条件--*/
				saleGoodsPruleQb:{
					"dataBillstate":"",  //促销状态
					"fullTextFilterStr":"",  //查询关键词
					"supStartDate":"",  //促销开始时间
					"supEndDate":"",  //促销结束时间
					"orderStr":'',
				},
				
				
				
				
				/* start 全局变量定义 */
				vue_advSearch_showDialog:false,  //是否启用高级搜索功能
				vue_advSearch_enable:false,  //是否显示高级搜索窗口
				vue_tableHeight:500,  //表格高度
				vue_row_selectCount:0,  //选择的row数
				vue_row_goodsPruleCodeStr:"",  //选中的row
				
					//table数据
				saleGoodsPruleSet: {
					"list":[],  //数据列表
					"pageTools":{},	//分页数据
					"sumInfo":{}, //汇总信息
				},
				
				
				
				/* end 全局变量定义 */
			}
		},
		methods: {
	    	vFun_sort(type){
	    		if(type.order==='ascending'){
	    			this.saleGoodsPruleQb.orderStr=type.prop
	    		}else if(type.order==='descending'){
	    			this.saleGoodsPruleQb.orderStr=type.prop +' desc'
	    		}else{
	    			this.saleGoodsPruleQb.orderStr=''
	    		};
	    		this.queryByPage();
	    	},  			
			
			//查table数据
			queryByPage(){
				this.axios({
					method: 'post',
					url: "/v3/sale/goodsPrules/list",
					data:{
						"offset":(this.saleGoodsPruleSet.pageTools.pageNo-1)*this.saleGoodsPruleSet.pageTools.pageSize,
						"limit":this.saleGoodsPruleSet.pageTools.pageSize,
						"fullTextFilterStr":this.saleGoodsPruleQb.fullTextFilterStr,
						"dataBillstate":this.saleGoodsPruleQb.dataBillstate,
						"supStartDate":this.saleGoodsPruleQb.supStartDate,
						"supEndDate":this.saleGoodsPruleQb.supEndDate,
						"orderStr":this.saleGoodsPruleQb.orderStr
					}
				}).then((res) => {
					this.saleGoodsPruleSet.list = res.data.list;
					this.saleGoodsPruleSet.pageTools = res.data.pageTools;
					this.saleGoodsPruleSet.sumInfo = res.data.sumInfo;
					this.saleGoodsPruleSet.pageTools.pageSizeOptions = JSON.parse(this.saleGoodsPruleSet.pageTools.pageSizeOptions);
				}).catch((err)=>{
					this.Public.openError(this,err.response.data);
			  	});
			},
			query_stateList(){  //请求促销状态list
				this.axios({
					method:"POST",
					url:"/v3/system/ddlists/00100000041/listAll",
					data:{}
				}).then((res)=>{
					this.vue_dataBillstate_dataList = res.data.list;
				}).catch((err)=>{
					
				})
			},
			ddlist_generalSearch_ok(){
				this.saleGoodsPruleSet.pageTools.pageNo=1;
				this.queryByPage();
			},
			//普通搜索 关键字
			generalSearch_ok(){
				this.saleGoodsPruleSet.pageTools.pageNo=1;
				this.queryByPage();
			},
			/* start 页面交互方法 */
				//选择row
			row_select(val) {
				this.vue_row_selectCount=val.length;
		        this.vue_row_goodsPruleCodeStr = "";
		        val.forEach((item,index,arr)=>{
		        	this.vue_row_goodsPruleCodeStr += item.goodsPruleCode+","
		        });
				this.vue_row_goodsPruleCodeStr = this.vue_row_goodsPruleCodeStr.substring(0,this.vue_row_goodsPruleCodeStr.length-1);
				if (this.vue_row_selectCount!=0) {
					this.vue_advSearch_showDialog=false
				}
			},
				//取消选择
			row_unselectAll(){
				this.vue_row_selectCount = 0;
		        this.vue_row_goodsPruleCodeStr = "";
				this.$refs.saleGoodsPruleRows.clearSelection();
			},
				//跳转编辑
			row_goUpdate(data){
				localStorage.setItem("goodsPruleCode",data.goodsPruleCode);
				this.$router.push({path:"/saleGoodsPruleUpdate"});
			},
			
				//查看详情
			row_goDetail(data){
				localStorage.setItem("goodsCode",data.goodsCode);
				this.$router.push({path:"/goods/goodDetails"});
			},
				
				//是否显示高级搜索窗口
			advSearch_showDialog(){
				this.vue_advSearch_enable=true;
				this.saleGoodsPruleQb.old_fullTextFilterStr = this.saleGoodsPruleQb.fullTextFilterStr;
				this.saleGoodsPruleQb.old_dataBillstate = this.saleGoodsPruleQb.dataBillstate;
				this.saleGoodsPruleQb.fullTextFilterStr='';
				this.saleGoodsPruleQb.dataBillstate='';
			},
				//高级搜索窗口确定
			advSearch_ok() {
				this.vue_advSearch_enable = false;
				this.vue_advSearch_showDialog=true;
				this.vue_row_selectCount=8888;
				if(this.vue_dateStr[0]){
					this.saleGoodsPruleQb.supStartDate=this.vue_dateStr[0];
					this.saleGoodsPruleQb.supEndDate=this.vue_dateStr[1];
				}else{
					this.saleGoodsPruleQb.supStartDate='';
					this.saleGoodsPruleQb.supEndDate='';
				}
				this.queryByPage();
			},
				//清除搜索
			advSearch_disable(){
				this.saleGoodsPruleQb.fullTextFilterStr='';
				this.saleGoodsPruleQb.dataBillstate='';
				this.saleGoodsPruleQb.supStartDate='';
				this.saleGoodsPruleQb.supEndDate='';
				this.saleGoodsPruleSet.pageTools.pageNo = 1;
				this.vue_advSearch_showDialog=false;
				this.vue_row_selectCount=0;
				this.queryByPage();
			},
				//继续搜索
			advSearch_enable(){	
				this.vue_advSearch_enable=true;
				this.vue_advSearch_showDialog=false;
			},
				//高级搜索窗口取消
			advSearch_cancel() {
				this.vue_advSearch_enable=false;
				this.vue_advSearch_showDialog=false;
				this.vue_row_selectCount=0;
				this.saleGoodsPruleQb.fullTextFilterStr = this.saleGoodsPruleQb.old_fullTextFilterStr;
				this.saleGoodsPruleQb.dataBillstate = this.saleGoodsPruleQb.old_dataBillstate;
			},
			advSearch_clear(){
				this.saleGoodsPruleQb.fullTextFilterStr='';
				this.saleGoodsPruleQb.dataBillstate='';
				this.vue_dateStr='';
			},
				//pageSize每页条数变化时的fn
			page_onPageSizeChange(val) {
				this.saleGoodsPruleSet.pageTools.pageSize = val;
				this.queryByPage();
			},
				//pageNo当前页码变化时的fn
			page_onCurPageChange(val) {
				this.saleGoodsPruleSet.pageTools.pageNo = val;
				this.queryByPage();
			},
				//批量永久删除
			batchDelete(){	
				this.$confirm('共有'+this.vue_row_selectCount+'条可作废的促销单，全部作废吗？', '确认', {
			        confirmButtonText: '确定',
			        cancelButtonText: '取消',
			        cancelButtonClass:"fr",
			        confirmButtonClass:"fr",
			        customClass:"clearfixBox"
			    }).then(()=>{
			    	this.axios({
						method: 'DELETE',
						url: "/v3/sale/goodsPrules/"+this.vue_row_goodsPruleCodeStr
					}).then((res) => {
						this.vue_row_selectCount = 0;
				        this.vue_row_goodsPruleCodeStr = "";
						this.Public.openSuccess(this,"操作成功！");
						this.queryByPage();
					}).catch((err)=>{
						this.Public.openError(this,err.response.data);
				    });
			    }).catch(()=>{
			    	
			    });
			},
		},
		created(){
			this.saleGoodsPruleSet.pageTools = this.$store.state.page;
			//请求列表状态
			this.queryByPage();
			//请求促销状态
			this.query_stateList();
		},
		mounted() {
			//动态设置高度
			this.$refs.content.style.height = (document.documentElement.clientHeight - 124)+"px";
			this.vue_tableHeight = document.documentElement.clientHeight - 240;
		},
	}
</script>

<style scoped>
	/* start  面包屑 */
	.location {padding: 3px 0 15px 0;}
	/* end  面包屑 */
	/* start content */
	.content {position: relative;background: #fff;padding: 15px;overflow-y: auto;font-family: "微软雅黑";}
		/* start 高级搜索 */
	.modal_backdrop {position: fixed;top: 0;right: 0;bottom: 0;left: 0;z-index: 80;background-color: rgba(240, 240, 240, 0.2);}
	.specific_search {position: absolute;width: 100%;top: 0;left: 0;padding: 30px;z-index: 1005;background: #fff;box-sizing: border-box;box-shadow: 0 0 10px #ccc;}
	.search_title {font-size: 16px;border: 0;color: #415161;}
	.form {width: 450px;margin: 20px 0;background: #fff;text-align: right;}
	.form li {margin-top: 15px;}
	.form input {width: 350px;height: 32px;border: 0;}
	.form div {display: inline-block;position: relative;width: 358px;height: 34px;border-radius: 4px;text-indent: 5px;margin-left: 12px;}
	.form li:first-child div {border: 1px solid rgb(191, 212, 217);}
	.form li:first-child div input {border-radius: 4px;}
	.search_btn {margin-top: 70px;}
	.search_handle {margin-left: -6px;height: 36px;line-height: 36px;}
	.search_handle em {font-size: 14px;}
	.search_handle a {margin-right: 20px;cursor: pointer;color: #768696;}
	.search_handle a:hover {color: #03B8CC;}
	.search_handle {margin-left: 10px;}
	.kael {text-align:left;text-indent:0 !important;}
		/* end 高级搜索 */
		/* start 批量操作 */
	.batch_handle {margin-left: -6px;height: 36px;line-height: 36px;}
	.batch_handle em {font-size: 14px;}
	.batch_handle a {margin-right: 20px;cursor: pointer;color: #768696;}
	.batch_handle a:hover {color: #03B8CC;}
		/* end 批量操作 */ 
		/* start 普通搜索 */
	.public_th {position: relative;min-width: 750px;z-index: 100;}
	.public_th_left span.search_openBtn {display: block;position: relative;height: 36px;margin-right: 10px;padding-right: 0px;line-height: 36px;color:#93a6b7;z-index: 100;cursor: pointer;}
	.slideBtn {line-height: 36px;margin-right: 26px;}
	.slideBtn>div>span{display: block;cursor: pointer;}
	.search_input input {display: block;float: left;width: 400px;height: 34px;font-size: 12px;border: 0;margin-left: 20px;}
	.search_input {float: left;width: 450px;border: 1px solid #cdd9e6;border-radius: 30px;margin-right: 10px;cursor: pointer;}
	.search_input:hover {border-color:#13C19F;transition: 1s;}
	.search_input i {background: url('../../../img/sousuo.png') no-repeat; height: 20px;width: 20px;display: inline-block;position: relative;top: 7px;right: 5px;cursor: pointer;}
	.public_th_right a {display: block;float: left;width: 80px;height: 32px;margin-left: 10px;box-sizing: border-box;text-decoration: none;text-align: center;line-height: 32px;border-radius: 30px;border: 1px solid #cdd9e6;cursor: pointer;}
		/* end 普通搜索 */
		/* start 表格 */
	.table {margin-top: 15px;}
	.table th {height: 50px;}
	.el-table th>.cell {width: 100%;word-wrap: normal;text-overflow: ellipsis;line-height: 20px;box-sizing: border-box;font-weight: normal !important;font-size: 14px;}
	.el-table {font-size: 12px !important;font-weight: normal !important;}
	.el-table--fit {border-left: 0;}
	.popover_p {text-indent: 10px;line-height: 30px;}
	.popover_p em {position: relative;top: 2px;margin-right: 3px;}
	.popover_p:hover {background: #eef1f9;color: #03B8CC;}
	.tab_hover {color: #b7c6d6;cursor: pointer;}
	.canClickText {cursor: pointer;color:#03B8CC;text-decoration:underline;}
		/* end 表格 */
		/* start page */
	.block {margin: 15px;}
		/* end page */
	/* end content */
	/* start transition */
	.fade-enter,.fade-leave-active {opacity: 0}
	.fade-enter-active,.fade-leave-active {transition: .4s;}
	/* end transition */
</style>
